package com.kyd.push.model;

import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.EntityListeners;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * BaseOrder
 *
 * @author kejw on 2018/9/15
 */
@Data
@NoArgsConstructor
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class Order implements Serializable {
	private static final long serialVersionUID = -1503246361349206199L;

	@Id
	private Long id;

	/**
	 * 货主id
	 */
	private Long consignorId;

	/**
	 * 货主手机号码
	 */
	private String consignorPhone;

	/**
	 * 货主名称
	 */
	private String consignorName;

	/**
	 * 司机id
	 */
	private Long driverId;

	/**
	 * 司机手机号码
	 */
	private String driverPhone;

	/**
	 * 司机姓名
	 */
	private String driverName;

	/**
	 * 收货人名称
	 */
	private String consigneeName;

	/**
	 * 收货人手机号码
	 */
	private String consigneePhone;

	/**
	 * 省份编码
	 */
	private String provincecode;

	/**
	 * 城市编码
	 */
	private String citycode;

	/**
	 * 区域编码
	 */
	private String adcode;

	/**
	 * 纬度(货源地)
	 */
	private Float lat;

	/**
	 * 经度(货源地)
	 */
	private Float lng;

	/**
	 * 货源地地址
	 */
	private String origins;

	/**
	 * 货源单位
	 */
	private String originsUnit;

	/**
	 * 目的地详细地址
	 */
	private String destination;

	/**
	 * 目的地单位
	 */
	private String destinationUnit;

	/**
	 * 地点个数
	 */
	private Integer waypointsQuantity;

	/**
	 * 额外服务
	 */
	private String otherService;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 运单里程
	 */
	private Integer distance;

	/**
	 * 车型id
	 */
	private Long cartypeId;

	/**
	 * 车型名称
	 */
	private String cartypeName;

	/**
	 * 超公里数
	 */
	private Integer startDistance;

	/**
	 * 起步价
	 */
	private BigDecimal startPrice;

	/**
	 * 单位价格
	 */
	private BigDecimal unitPrice;

	/**
	 * 超公里数
	 */
	private Integer exceedDistance;

	/**
	 * 超公里价格
	 */
	private BigDecimal exceedPrice;

	/**
	 * 运单价
	 */
	private BigDecimal money;

	/**
	 * 支付价格
	 */
	private BigDecimal payMoney;

	/**
	 * 总价格
	 */
	private BigDecimal totalMoney;

	/**
	 * 总优惠
	 */
	private BigDecimal totalCouponMoney;

	/**
	 * 是否需要电子回单 true 需要 false 不需要
	 */
	private Boolean hasReceipt;

	/**
	 * 预约时间
	 */
	private Date estimateTime;

	/**
	 * 司机接单时间
	 */
	private Date takeTime;

	/**
	 * 装车时间
	 */
	private Date loadedTime;

	/**
	 * 到达目的地时间
	 */
	private Date arrivedTime;

	/**
	 * 支付时间
	 */
	private Date paidTime;

	@CreatedDate
	private Date gmtCreate;
}
